#ifndef PRIMITIVES_H
#define PRIMITIVES_H

#include "tabSymboles.h"

/**
 *  ENTREES
 */


entree* createFakeEntry(typage type);


/**
 *  TABLE DES SYMBOLES
 */

symtable* createSymbolTable();
void popLevel(symtable* tab);


/**
 *  GETTERS
 */
entree* getEntry(char* lex, symtable* tab);
typage getType(entree* e);
param* getParams(entree* e);
prop* getProperties(entree* e);
piledef* getPileDef(entree* e);
int getLevel(entree* e);
int getCptRegister(symtable* tab);
int getRegister(entree* e);


/**
 *  SETTERS
 **/

entree* addDeclaration(int bloc, char* lex, typage t, param* liste, symtable* tab);
void addParameter(entree* e, typage t);
void setType(entree* e, typage t);



/**
 *  AFFICHAGES
 **/
void afficheType(entree* e);
void decoderType(typage t);

#endif
